#include <stdio.h>
#include <string.h>
#include "menu_capteur.h"
void ajouter_capteur(capteur *c)
{
printf(" donner le nom du capteur\t");
scanf("%s",(*c).nom);
printf("donner l'etat du capteur\t");
scanf ("%d",&(*c).etat);
printf("donner l'emplacement du capteur\t");
scanf("%s",(*c).emplacement);
}
void creer_fichier (capteur *c)
{FILE *f;
int choix;
char chemin[]="capteur.txt";
f=fopen(chemin,"w");
if(f==NULL){
printf("\n Impossible d\'ouvrir le fichier ");
}else{
do
{printf("ajouter un capteur:\t");
ajouter_capteur(c);
fwrite(&c,sizeof(capteur),1,f);

do
{printf("voulez-vous continer oui 1/non 0\t");
scanf("%d",&choix);
}while ((choix<0)||(choix>1));
}while (choix!=0);

}
fclose(f);

}

void menu (capteur *c ,char chemin[])
{
int choix;

printf("1:afficher \t");
printf("2:enregistrer_capteur\t");
printf("3:supprimer_capteur\t");
printf("4:modifier_capteur\t");
printf("taper autre bouton pour quitter menu\t");



printf ("donner votre choix\t");
scanf("%d",&choix);

switch (choix)
{case 1: {afficher (*c);
break;}
case 2:{enregistrer_capteur (chemin,c) ;
break;}
case 3:{supprimer_capteur (chemin,c);
break;}
case 4:{modifier_capteur(chemin ,c);
break;}
default :{printf("quitter menu");}
}
}



void afficher(capteur c)
{FILE *f;
char chemin[]="C:\\capteur.txt";
  f=fopen(chemin ,"rb");
  if (f==NULL)
   printf ("erreur");
  else{
  while(fread(&c,sizeof(capteur),1,f)!=0)
  {
printf(" %s\t%s\t%d",c.nom,c.emplacement,c.etat);
}
  }

}




void enregistrer_capteur (char chemin[],capteur *c)
{
FILE *f;
f=fopen(chemin,"ab");
if(f==NULL){
printf("\n Impossible d\'ouvrir le fichier ");
}else{
ajouter_capteur(c);
fwrite(c,sizeof(capteur),1,f);
}
fclose(f);
}


void supprimer_capteur (char chemin[] ,capteur *c)
{
char nom_capteur[20];
FILE *f1,*f2;

char temp[]="capteur1.txt";;


f1=fopen(chemin,"rb");
f2=fopen(temp,"ab");
if(f1==NULL||f2==NULL){
printf("\n Impossible d\'ouvrir leS fichier ");
}else{
while (fread(c,sizeof(capteur),1,f1)!=0){

    if (strcmp(c->nom, nom_capteur) != 0)
   fwrite(&c,sizeof(capteur),1,f2);
}
fclose(f1);
fclose(f2);
remove(chemin);
rename(temp,chemin);
}
}
void modifier_capteur (char chemin[] ,capteur *c)
{ char nom_capteur[20];


FILE *f1,*f2;
int choix;
char temp[]="c:\\capteur.txt";

f1=fopen(chemin,"rb");
f2=fopen(temp,"ab");
if(f1==NULL||f2==NULL){
printf("\n Impossible d\'ouvrir leS fichier ");
}else{
while (fread(c,sizeof(capteur),1,f1)!=0)
    {

if (strcmp(c->nom, nom_capteur) !=0)
   fwrite(&c,sizeof(capteur),1,f2);
else {printf("modifier ce capteur\n");
printf("***menu*****\n");
printf("1:modifier nom\n");
printf("2:modifier etat\n");
printf("3:modifier emplacement\n");
printf("************\n");
do
{printf("donner votre choix \t");
scanf("%d",&choix);
}while (choix<1 ||choix>3);
switch(choix)
{case 1: {printf("donner le nouveau nom:\t");
           scanf("%s", c->nom);

}break;
 case 2:{printf ("donner la nouvelle etat du capteur:\t");
          scanf("%d",&c->etat);
 }break;
case 3: {printf("donner le nouveau emplacemet:\t");
           scanf("%s",c->emplacement);

}break;
}
 fwrite(&c,sizeof(capteur),1,f2);
}
fclose(f1);
fclose(f2);
remove(chemin);
rename(temp,chemin);
}
}}


